// pages/activity/activityC/index.js
const { giveMemberCoupon } = require('../../../api/activity');
const { checkUserCouponStatus } = require('../../../api/coupon');
Page({

  /**
   * 页面的初始数据
   */
  data: {
    activityId: 3,
    couponId: 3,
    hasReceived: false,
    buttonText: '立即领取'
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    if (options.couponId) {
      this.setData({ couponId: options.couponId || '3'});
    }
    this.checkCouponStatus()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  handleGetCoupon() {
    if (this.data.hasReceived) return; // 防止重复点击
    const { activityId, couponId } = this.data;
    giveMemberCoupon({
      activityId,
      couponId
    }).then(res => {
      if (res.code === 20000) {
        wx.showToast({ title: '领取成功', icon: 'success' });
        this.setData({
          hasReceived: true,
          buttonText: '已领取'
        });
      } else {
        wx.showToast({ title: res.msg || '领取失败', icon: 'none' });
      }
    }).catch(err => {
      console.error('领取失败:', err);
      wx.showToast({
        title: '领取失败',
        icon: 'none'
      });
    });
  },

  checkCouponStatus() {
    const { couponId } = this.data;
    checkUserCouponStatus(couponId).then(res => {
      if (res.code === 20000) {
        const received = res.data === true;  // 后端返回 true 表示已领取
        this.setData({
          hasReceived: received,
          buttonText: received ? '已领取' : '立即领取'
        });
      } else {
        wx.showToast({ title: res.msg || '获取用户领取情况失败', icon: 'none' });
      }
    }).catch(err => {
      console.error('获取用户领取情况失败:', err);
      wx.showToast({
        title: '获取用户领取情况失败',
        icon: 'none'
      });
    });
  }
  
});